ENGINEERING PORTFOLIO
Technical Experience
My studies at UBC have given me the opportunity to explore a wide range of engineering disciplines beyond my larger projects. Through university labs and coursework, I have gained hands-on experience with robotic manipulators, ROS 2, neural networks, and computer vision. This page highlights some of that work, along with the skills I am continuing to develop.
TECHNICAL EXPERIENCE 01
Quanser 4-DOF Robotic Arm
Robotics · Manipulator Kinematics · Robot Control
Experience Overview
Through my Intro to Robotics coursework, I have had the opportunity to work with a Quanser 4-DOF robotic arm and explore the forward, inverse, and velocity kinematics used to describe and control its motion. Working with a physical manipulator has helped me connect the theory to the practical challenges of getting a robot to move as intended.
Applying What I've Learned
This experience has also given me ideas for my own 4-DOF servo robot arm project, where I am working toward applying similar kinematic models to a lower-cost, custom-built manipulator. When my professor offered an optional project opportunity alongside the course, I was keen to take it on. You can find more about that project on my Smaller Projects page.
TECHNICAL EXPERIENCE 02
ROS 2 & Robot Control
ROS 2 · Python · OpenCV · Gazebo Simulation
Experience Overview
Through ENPH 353, I have been working with ROS 2 to control a simulated robot using camera input. My line-following implementation uses a Python node to process the robot's camera feed and determine the movement commands needed to follow a line.
Implementation & Testing
The node subscribes to /camera/image_raw
and publishes velocity commands to /cmd_vel.
Using Gazebo to simulate the robot has given me
practical experience with ROS topics, camera-based
feedback, and the process of testing and refining
robot behaviour in response to sensor input.
I am continuing to build my understanding of reliable robot control and how image processing can be used to guide a robot's movement.
TECHNICAL EXPERIENCE 03
Neural Networks & Computer Vision
Python · Machine Learning · Neural Networks · CNNs · Computer Vision
Experience Overview
As part of my ENPH 353 coursework, I have trained both neural networks and convolutional neural networks (CNNs), exploring how models can learn patterns from data and apply them to recognition tasks. This has given me practical experience with machine-learning workflows while developing my programming and computer-vision skills.
Applying Machine Learning
One application has been extending our simulated line-following robot to use a neural network to determine its movement from visual input, rather than relying solely on manually defined image-processing rules. This has introduced me to how learning-based approaches can be applied to robot control.
I have also developed a CNN-based license-plate recognition workflow for a flock camera lab. This involves generating synthetic license-plate images and training a CNN to identify the characters on each plate. The confusion matrix shown alongside the project provides a way to evaluate how accurately the model classifies those characters.
These projects contribute to our broader ENPH 353 work, including a semester-end autonomous robot competition where our simulated robots must identify clues and complete tasks in Gazebo. I am continuing to build my understanding of model training, image processing, and the practical limitations of these approaches.